home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / sos3-2.lha / include / mta_sos.h < prev    next >
C/C++ Source or Header  |  1991-11-08  |  34KB  |  724 lines

  1. #ifndef mta_SOSI
  2. #define mta_SOSI 1
  3.  
  4. #include "mta_use.h"
  5. #include "knl_sos.h"
  6. #include "agg_sos.h"
  7. #include "dir_sos.h"
  8. class _sos_Imports;
  9. class _sos_Schema_impl;
  10. class _sos_Method_impl;
  11. class _sos_Expr;
  12. class _sos_Schema_module;
  13. class _sos_Int_expr;
  14. class _sos_Identifier;
  15. class _sos_Type_name;
  16. class _sos_Schema_type;
  17. class _sos_Unidentified_type;
  18. class _sos_Type_with_params;
  19. class _sos_Generic_instantiation;
  20. class _sos_Gen_param;
  21. class _sos_Param;
  22. class _sos_Method;
  23. class _sos_Method_table;
  24. class _sos_Comp_method;
  25. class _sos_Union_type;
  26. class _sos_Typedef_type;
  27. class _sos_Enum_type;
  28. class _sos_Extern_type;
  29. class _sos_Forward_class_type;
  30. class _sos_Super_class;
  31. class _sos_Class_type;
  32. class _sos_Imports:virtual public _sos_Object_List
  33. {  friend class sos_Imports;
  34.    virtual sos_Offset _offset_sos_Object () { return 0; }
  35.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  36.    virtual sos_Offset _offset_sos_Object_Collection () { return 8; }
  37.    virtual sos_Offset _offset_sos_Object_List () { return 9; }
  38.    virtual sos_Offset _offset_sos_Imports () { return 21; }
  39. public:
  40.    static _sos_Imports* _make(sos_Typed_id&);
  41.    virtual sos_Offset _size();
  42.    void _create(sos_Typed_id&);
  43.    void _copy(sos_Typed_id&,sos_Imports);
  44.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  45.    virtual void destroy(sos_Typed_id&);
  46.    virtual void assign(sos_Typed_id&,sos_Object);
  47.    static void local_assign(sos_Imports,sos_Object);
  48.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  49.    static sos_Bool local_equal(sos_Imports,sos_Object,sos_Eq_kind);
  50.    virtual sos_Int hash_value(sos_Typed_id&);
  51.    static sos_Int local_hash_value(sos_Imports);
  52.    virtual sos_Schema_type lookup_type(sos_Typed_id&,sos_String name,sos_Bool look_for_alias = FALSE);
  53. protected:
  54. };
  55. extern _sos_Imports *__sos_Imports_obj;
  56. class _sos_Schema_impl:virtual public _sos_Object
  57. {  friend class sos_Schema_impl;
  58.    virtual sos_Offset _offset_sos_Object () { return 0; }
  59.    virtual sos_Offset _offset_sos_Schema_impl () { return 8; }
  60. public:
  61.    static _sos_Schema_impl* _make(sos_Typed_id&);
  62.    virtual sos_Offset _size();
  63.    void _create(sos_Typed_id&);
  64.    void _copy(sos_Typed_id&,sos_Schema_impl);
  65.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  66.    virtual void destroy(sos_Typed_id&);
  67.    virtual void assign(sos_Typed_id&,sos_Object);
  68.    static void local_assign(sos_Schema_impl,sos_Object);
  69.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  70.    static sos_Bool local_equal(sos_Schema_impl,sos_Object,sos_Eq_kind);
  71.    virtual sos_Int hash_value(sos_Typed_id&);
  72.    static sos_Int local_hash_value(sos_Schema_impl);
  73. protected:
  74. };
  75. extern _sos_Schema_impl *__sos_Schema_impl_obj;
  76. class _sos_Method_impl:virtual public _sos_Object
  77. {  friend class sos_Method_impl;
  78.    virtual sos_Offset _offset_sos_Object () { return 0; }
  79.    virtual sos_Offset _offset_sos_Method_impl () { return 8; }
  80. public:
  81.    static _sos_Method_impl* _make(sos_Typed_id&);
  82.    virtual sos_Offset _size();
  83.    void _create(sos_Typed_id&);
  84.    void _copy(sos_Typed_id&,sos_Method_impl);
  85.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  86.    virtual void destroy(sos_Typed_id&);
  87.    virtual void assign(sos_Typed_id&,sos_Object);
  88.    static void local_assign(sos_Method_impl,sos_Object);
  89.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  90.    static sos_Bool local_equal(sos_Method_impl,sos_Object,sos_Eq_kind);
  91.    virtual sos_Int hash_value(sos_Typed_id&);
  92.    static sos_Int local_hash_value(sos_Method_impl);
  93. protected:
  94. };
  95. extern _sos_Method_impl *__sos_Method_impl_obj;
  96. class _sos_Expr:virtual public _sos_Object
  97. {  friend class sos_Expr;
  98.    virtual sos_Offset _offset_sos_Object () { return 0; }
  99.    virtual sos_Offset _offset_sos_Expr () { return 8; }
  100. public:
  101.    static _sos_Expr* _make(sos_Typed_id&);
  102.    virtual sos_Offset _size();
  103.    void _create(sos_Typed_id&);
  104.    void _copy(sos_Typed_id&,sos_Expr);
  105.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  106.    virtual void destroy(sos_Typed_id&);
  107.    virtual void assign(sos_Typed_id&,sos_Object);
  108.    static void local_assign(sos_Expr,sos_Object);
  109.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  110.    static sos_Bool local_equal(sos_Expr,sos_Object,sos_Eq_kind);
  111.    virtual sos_Int hash_value(sos_Typed_id&);
  112.    static sos_Int local_hash_value(sos_Expr);
  113. protected:
  114. };
  115. extern _sos_Expr *__sos_Expr_obj;
  116. class _sos_Schema_module:virtual public _sos_Named
  117. {  friend class sos_Schema_module;
  118.    virtual sos_Offset _offset_sos_Object () { return 0; }
  119.    virtual sos_Offset _offset_sos_Named () { return 8; }
  120.    virtual sos_Offset _offset_sos_Schema_module () { return 8; }
  121. public:
  122.    static _sos_Schema_module* _make(sos_Typed_id&);
  123.    virtual sos_Offset _size();
  124.    void _create(sos_Typed_id&);
  125.    void _copy(sos_Typed_id&,sos_Schema_module);
  126.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  127.    virtual void destroy(sos_Typed_id&);
  128.    virtual void assign(sos_Typed_id&,sos_Object);
  129.    static void local_assign(sos_Schema_module,sos_Object);
  130.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  131.    static sos_Bool local_equal(sos_Schema_module,sos_Object,sos_Eq_kind);
  132.    virtual sos_Int hash_value(sos_Typed_id&);
  133.    static sos_Int local_hash_value(sos_Schema_module);
  134.    virtual sos_Schema_type lookup_type(sos_Typed_id&,sos_String name,sos_Bool look_for_alias = FALSE);
  135.    virtual void open_imports(sos_Typed_id&);
  136.    virtual void close_imports(sos_Typed_id&);
  137.    virtual void install(sos_Typed_id&);
  138.    virtual sos_String get_name(sos_Typed_id&);
  139.    virtual void set_name(sos_Typed_id&,sos_String);
  140.    virtual sos_Imports get_imports(sos_Typed_id&);
  141.    virtual void set_imports(sos_Typed_id&,sos_Imports);
  142.    virtual sos_Schema_type_List get_types(sos_Typed_id&);
  143.    virtual void set_types(sos_Typed_id&,sos_Schema_type_List);
  144.    virtual sos_Type_table get_type_table(sos_Typed_id&);
  145.    virtual void set_type_table(sos_Typed_id&,sos_Type_table);
  146.    virtual sos_Bool get_has_external_import(sos_Typed_id&);
  147.    virtual void set_has_external_import(sos_Typed_id&,sos_Bool);
  148.    virtual sos_Bool get_has_external_types(sos_Typed_id&);
  149.    virtual void set_has_external_types(sos_Typed_id&,sos_Bool);
  150.    virtual sos_Schema_impl_List get_impls(sos_Typed_id&);
  151.    virtual void set_impls(sos_Typed_id&,sos_Schema_impl_List);
  152.    static sos_Schema_module_Directory schema_dir();
  153.    static sos_Schema_module lookup(sos_String _p1);
  154.    static sos_Schema_module retrieve(sos_Container _p1);
  155. protected:
  156. };
  157. extern _sos_Schema_module *__sos_Schema_module_obj;
  158. class _sos_Int_expr:virtual public _sos_Expr
  159. {  friend class sos_Int_expr;
  160.    virtual sos_Offset _offset_sos_Object () { return 0; }
  161.    virtual sos_Offset _offset_sos_Expr () { return 8; }
  162.    virtual sos_Offset _offset_sos_Int_expr () { return 8; }
  163. public:
  164.    static _sos_Int_expr* _make(sos_Typed_id&);
  165.    virtual sos_Offset _size();
  166.    void _create(sos_Typed_id&);
  167.    void _copy(sos_Typed_id&,sos_Int_expr);
  168.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  169.    virtual void destroy(sos_Typed_id&);
  170.    virtual void assign(sos_Typed_id&,sos_Object);
  171.    static void local_assign(sos_Int_expr,sos_Object);
  172.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  173.    static sos_Bool local_equal(sos_Int_expr,sos_Object,sos_Eq_kind);
  174.    virtual sos_Int hash_value(sos_Typed_id&);
  175.    static sos_Int local_hash_value(sos_Int_expr);
  176.    virtual sos_Int get_value(sos_Typed_id&);
  177.    virtual void set_value(sos_Typed_id&,sos_Int);
  178. protected:
  179. };
  180. extern _sos_Int_expr *__sos_Int_expr_obj;
  181. class _sos_Identifier:virtual public _sos_Expr
  182. {  friend class sos_Identifier;
  183.    virtual sos_Offset _offset_sos_Object () { return 0; }
  184.    virtual sos_Offset _offset_sos_Expr () { return 8; }
  185.    virtual sos_Offset _offset_sos_Identifier () { return 8; }
  186. public:
  187.    static _sos_Identifier* _make(sos_Typed_id&);
  188.    virtual sos_Offset _size();
  189.    void _create(sos_Typed_id&);
  190.    void _copy(sos_Typed_id&,sos_Identifier);
  191.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  192.    virtual void destroy(sos_Typed_id&);
  193.    virtual void assign(sos_Typed_id&,sos_Object);
  194.    static void local_assign(sos_Identifier,sos_Object);
  195.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  196.    static sos_Bool local_equal(sos_Identifier,sos_Object,sos_Eq_kind);
  197.    virtual sos_Int hash_value(sos_Typed_id&);
  198.    static sos_Int local_hash_value(sos_Identifier);
  199.    virtual sos_String get_id(sos_Typed_id&);
  200.    virtual void set_id(sos_Typed_id&,sos_String);
  201. protected:
  202. };
  203. extern _sos_Identifier *__sos_Identifier_obj;
  204. class _sos_Type_name:virtual public _sos_Object
  205. {  friend class sos_Type_name;
  206.    virtual sos_Offset _offset_sos_Object () { return 0; }
  207.    virtual sos_Offset _offset_sos_Type_name () { return 8; }
  208. public:
  209.    static _sos_Type_name* _make(sos_Typed_id&);
  210.    virtual sos_Offset _size();
  211.    void _create(sos_Typed_id&);
  212.    void _copy(sos_Typed_id&,sos_Type_name);
  213.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  214.    virtual void destroy(sos_Typed_id&);
  215.    virtual void assign(sos_Typed_id&,sos_Object);
  216.    static void local_assign(sos_Type_name,sos_Object);
  217.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  218.    static sos_Bool local_equal(sos_Type_name,sos_Object,sos_Eq_kind);
  219.    virtual sos_Int hash_value(sos_Typed_id&);
  220.    static sos_Int local_hash_value(sos_Type_name);
  221.    virtual sos_Schema_type make_root_type(sos_Typed_id&);
  222.    virtual sos_Schema_type make_base_type(sos_Typed_id&);
  223.    virtual sos_Expr_List create_params(sos_Typed_id&);
  224.    virtual sos_Schema_type make_type(sos_Typed_id&);
  225.    virtual sos_String make_type_name(sos_Typed_id&);
  226. protected:
  227. };
  228. extern _sos_Type_name *__sos_Type_name_obj;
  229. class _sos_Schema_type:virtual public _sos_Type,virtual public _sos_Type_name
  230. {  friend class sos_Schema_type;
  231.    virtual sos_Offset _offset_sos_Object () { return 0; }
  232.    virtual sos_Offset _offset_sos_Named () { return 8; }
  233.    virtual sos_Offset _offset_sos_Type () { return 8; }
  234.    virtual sos_Offset _offset_sos_Type_name () { return 28; }
  235.    virtual sos_Offset _offset_sos_Schema_type () { return 28; }
  236. public:
  237.    static _sos_Schema_type* _make(sos_Typed_id&);
  238.    virtual sos_Offset _size();
  239.    void _create(sos_Typed_id&);
  240.    void _copy(sos_Typed_id&,sos_Schema_type);
  241.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  242.    virtual void destroy(sos_Typed_id&);
  243.    virtual void assign(sos_Typed_id&,sos_Object);
  244.    static void local_assign(sos_Schema_type,sos_Object);
  245.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  246.    static sos_Bool local_equal(sos_Schema_type,sos_Object,sos_Eq_kind);
  247.    virtual sos_Int hash_value(sos_Typed_id&);
  248.    static sos_Int local_hash_value(sos_Schema_type);
  249.    virtual sos_Bool is_derived_from(sos_Typed_id&,sos_Type _p1);
  250.    virtual sos_Bool is_derived_from_some(sos_Typed_id&,sos_Type _p1);
  251.    virtual sos_Bool is_scalar(sos_Typed_id&);
  252.    virtual sos_Type base(sos_Typed_id&);
  253.    virtual sos_Schema_type make_type(sos_Typed_id&);
  254.    virtual sos_String make_type_name(sos_Typed_id&);
  255. protected:
  256.    static sos_Bool total_equal(sos_Schema_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  257.    static sos_Int total_hash_value(sos_Schema_type _p1);
  258. };
  259. extern _sos_Schema_type *__sos_Schema_type_obj;
  260. class _sos_Unidentified_type:virtual public _sos_Type_name,virtual public _sos_Named
  261. {  friend class sos_Unidentified_type;
  262.    virtual sos_Offset _offset_sos_Object () { return 0; }
  263.    virtual sos_Offset _offset_sos_Type_name () { return 8; }
  264.    virtual sos_Offset _offset_sos_Named () { return 8; }
  265.    virtual sos_Offset _offset_sos_Unidentified_type () { return 8; }
  266. public:
  267.    static _sos_Unidentified_type* _make(sos_Typed_id&);
  268.    virtual sos_Offset _size();
  269.    void _create(sos_Typed_id&);
  270.    void _copy(sos_Typed_id&,sos_Unidentified_type);
  271.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  272.    virtual void destroy(sos_Typed_id&);
  273.    virtual void assign(sos_Typed_id&,sos_Object);
  274.    static void local_assign(sos_Unidentified_type,sos_Object);
  275.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  276.    static sos_Bool local_equal(sos_Unidentified_type,sos_Object,sos_Eq_kind);
  277.    virtual sos_Int hash_value(sos_Typed_id&);
  278.    static sos_Int local_hash_value(sos_Unidentified_type);
  279.    virtual sos_Schema_type make_type(sos_Typed_id&);
  280.    virtual sos_String make_type_name(sos_Typed_id&);
  281.    virtual sos_String get_name(sos_Typed_id&);
  282.    virtual void set_name(sos_Typed_id&,sos_String);
  283. protected:
  284. };
  285. extern _sos_Unidentified_type *__sos_Unidentified_type_obj;
  286. class _sos_Type_with_params:virtual public _sos_Type_name
  287. {  friend class sos_Type_with_params;
  288.    virtual sos_Offset _offset_sos_Object () { return 0; }
  289.    virtual sos_Offset _offset_sos_Type_name () { return 8; }
  290.    virtual sos_Offset _offset_sos_Type_with_params () { return 8; }
  291. public:
  292.    static _sos_Type_with_params* _make(sos_Typed_id&);
  293.    virtual sos_Offset _size();
  294.    void _create(sos_Typed_id&);
  295.    void _copy(sos_Typed_id&,sos_Type_with_params);
  296.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  297.    virtual void destroy(sos_Typed_id&);
  298.    virtual void assign(sos_Typed_id&,sos_Object);
  299.    static void local_assign(sos_Type_with_params,sos_Object);
  300.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  301.    static sos_Bool local_equal(sos_Type_with_params,sos_Object,sos_Eq_kind);
  302.    virtual sos_Int hash_value(sos_Typed_id&);
  303.    static sos_Int local_hash_value(sos_Type_with_params);
  304.    virtual sos_Expr_List create_params(sos_Typed_id&);
  305.    virtual sos_Schema_type make_type(sos_Typed_id&);
  306.    virtual sos_String make_type_name(sos_Typed_id&);
  307.    virtual sos_Type_name get_type_name(sos_Typed_id&);
  308.    virtual void set_type_name(sos_Typed_id&,sos_Type_name);
  309.    virtual sos_Expr_List get_params(sos_Typed_id&);
  310.    virtual void set_params(sos_Typed_id&,sos_Expr_List);
  311. protected:
  312. };
  313. extern _sos_Type_with_params *__sos_Type_with_params_obj;
  314. class _sos_Generic_instantiation:virtual public _sos_Type_name
  315. {  friend class sos_Generic_instantiation;
  316.    virtual sos_Offset _offset_sos_Object () { return 0; }
  317.    virtual sos_Offset _offset_sos_Type_name () { return 8; }
  318.    virtual sos_Offset _offset_sos_Generic_instantiation () { return 8; }
  319. public:
  320.    static _sos_Generic_instantiation* _make(sos_Typed_id&);
  321.    virtual sos_Offset _size();
  322.    void _create(sos_Typed_id&);
  323.    void _copy(sos_Typed_id&,sos_Generic_instantiation);
  324.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  325.    virtual void destroy(sos_Typed_id&);
  326.    virtual void assign(sos_Typed_id&,sos_Object);
  327.    static void local_assign(sos_Generic_instantiation,sos_Object);
  328.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  329.    static sos_Bool local_equal(sos_Generic_instantiation,sos_Object,sos_Eq_kind);
  330.    virtual sos_Int hash_value(sos_Typed_id&);
  331.    static sos_Int local_hash_value(sos_Generic_instantiation);
  332.    virtual sos_Bool is_universal(sos_Typed_id&);
  333.    virtual sos_Schema_type make_type(sos_Typed_id&);
  334.    virtual sos_String make_type_name(sos_Typed_id&);
  335.    virtual sos_Class_type get_gen(sos_Typed_id&);
  336.    virtual void set_gen(sos_Typed_id&,sos_Class_type);
  337.    virtual sos_Type_name_List get_gen_params(sos_Typed_id&);
  338.    virtual void set_gen_params(sos_Typed_id&,sos_Type_name_List);
  339.    virtual sos_Class_type get_instantiation(sos_Typed_id&);
  340.    virtual void set_instantiation(sos_Typed_id&,sos_Class_type);
  341. protected:
  342. };
  343. extern _sos_Generic_instantiation *__sos_Generic_instantiation_obj;
  344. class _sos_Gen_param:virtual public _sos_Type_name,virtual public _sos_Named
  345. {  friend class sos_Gen_param;
  346.    virtual sos_Offset _offset_sos_Object () { return 0; }
  347.    virtual sos_Offset _offset_sos_Type_name () { return 8; }
  348.    virtual sos_Offset _offset_sos_Named () { return 8; }
  349.    virtual sos_Offset _offset_sos_Gen_param () { return 8; }
  350. public:
  351.    static _sos_Gen_param* _make(sos_Typed_id&);
  352.    virtual sos_Offset _size();
  353.    void _create(sos_Typed_id&);
  354.    void _copy(sos_Typed_id&,sos_Gen_param);
  355.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  356.    virtual void destroy(sos_Typed_id&);
  357.    virtual void assign(sos_Typed_id&,sos_Object);
  358.    static void local_assign(sos_Gen_param,sos_Object);
  359.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  360.    static sos_Bool local_equal(sos_Gen_param,sos_Object,sos_Eq_kind);
  361.    virtual sos_Int hash_value(sos_Typed_id&);
  362.    static sos_Int local_hash_value(sos_Gen_param);
  363.    virtual sos_Schema_type make_type(sos_Typed_id&);
  364.    virtual sos_String make_type_name(sos_Typed_id&);
  365.    virtual sos_String get_name(sos_Typed_id&);
  366.    virtual void set_name(sos_Typed_id&,sos_String);
  367.    virtual sos_Type_name get_super_class(sos_Typed_id&);
  368.    virtual void set_super_class(sos_Typed_id&,sos_Type_name);
  369. protected:
  370. };
  371. extern _sos_Gen_param *__sos_Gen_param_obj;
  372. class _sos_Param:virtual public _sos_Named
  373. {  friend class sos_Param;
  374.    virtual sos_Offset _offset_sos_Object () { return 0; }
  375.    virtual sos_Offset _offset_sos_Named () { return 8; }
  376.    virtual sos_Offset _offset_sos_Param () { return 8; }
  377. public:
  378.    static _sos_Param* _make(sos_Typed_id&);
  379.    virtual sos_Offset _size();
  380.    void _create(sos_Typed_id&);
  381.    void _copy(sos_Typed_id&,sos_Param);
  382.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  383.    virtual void destroy(sos_Typed_id&);
  384.    virtual void assign(sos_Typed_id&,sos_Object);
  385.    static void local_assign(sos_Param,sos_Object);
  386.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  387.    static sos_Bool local_equal(sos_Param,sos_Object,sos_Eq_kind);
  388.    virtual sos_Int hash_value(sos_Typed_id&);
  389.    static sos_Int local_hash_value(sos_Param);
  390.    virtual sos_String get_name(sos_Typed_id&);
  391.    virtual void set_name(sos_Typed_id&,sos_String);
  392.    virtual sos_Type_name get_type_name(sos_Typed_id&);
  393.    virtual void set_type_name(sos_Typed_id&,sos_Type_name);
  394.    virtual sos_Bool get_is_ref(sos_Typed_id&);
  395.    virtual void set_is_ref(sos_Typed_id&,sos_Bool);
  396.    virtual sos_Expr get_default_expr(sos_Typed_id&);
  397.    virtual void set_default_expr(sos_Typed_id&,sos_Expr);
  398. protected:
  399. };
  400. extern _sos_Param *__sos_Param_obj;
  401. class _sos_Method:virtual public _sos_Named
  402. {  friend class sos_Method;
  403.    virtual sos_Offset _offset_sos_Object () { return 0; }
  404.    virtual sos_Offset _offset_sos_Named () { return 8; }
  405.    virtual sos_Offset _offset_sos_Method () { return 8; }
  406. public:
  407.    static _sos_Method* _make(sos_Typed_id&);
  408.    virtual sos_Offset _size();
  409.    void _create(sos_Typed_id&);
  410.    void _copy(sos_Typed_id&,sos_Method);
  411.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  412.    virtual void destroy(sos_Typed_id&);
  413.    virtual void assign(sos_Typed_id&,sos_Object);
  414.    static void local_assign(sos_Method,sos_Object);
  415.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  416.    static sos_Bool local_equal(sos_Method,sos_Object,sos_Eq_kind);
  417.    virtual sos_Int hash_value(sos_Typed_id&);
  418.    static sos_Int local_hash_value(sos_Method);
  419.    virtual sos_Bool overloads(sos_Typed_id&,sos_Method _p1);
  420.    virtual sos_Bool redefines(sos_Typed_id&,sos_Method _p1);
  421.    virtual sos_Object execute(sos_Typed_id&,sos_Object _p1,sos_Object_Array _p2);
  422.    virtual sos_String get_name(sos_Typed_id&);
  423.    virtual void set_name(sos_Typed_id&,sos_String);
  424.    virtual sos_Method_kind get_kind(sos_Typed_id&);
  425.    virtual void set_kind(sos_Typed_id&,sos_Method_kind);
  426.    virtual sos_Bool get_is_abstract(sos_Typed_id&);
  427.    virtual void set_is_abstract(sos_Typed_id&,sos_Bool);
  428.    virtual sos_Bool get_is_static(sos_Typed_id&);
  429.    virtual void set_is_static(sos_Typed_id&,sos_Bool);
  430.    virtual sos_Bool get_is_operator(sos_Typed_id&);
  431.    virtual void set_is_operator(sos_Typed_id&,sos_Bool);
  432.    virtual sos_Bool get_is_predefined(sos_Typed_id&);
  433.    virtual void set_is_predefined(sos_Typed_id&,sos_Bool);
  434.    virtual sos_Method get_generated_from(sos_Typed_id&);
  435.    virtual void set_generated_from(sos_Typed_id&,sos_Method);
  436.    virtual sos_Class_type get_defined_in(sos_Typed_id&);
  437.    virtual void set_defined_in(sos_Typed_id&,sos_Class_type);
  438.    virtual sos_Param_List get_params(sos_Typed_id&);
  439.    virtual void set_params(sos_Typed_id&,sos_Param_List);
  440.    virtual sos_Type_name get_result_type(sos_Typed_id&);
  441.    virtual void set_result_type(sos_Typed_id&,sos_Type_name);
  442.    virtual sos_Method_impl_List get_impls(sos_Typed_id&);
  443.    virtual void set_impls(sos_Typed_id&,sos_Method_impl_List);
  444. protected:
  445. };
  446. extern _sos_Method *__sos_Method_obj;
  447. class _sos_Method_table:virtual public _sos_Object_sos_Object_Mapping
  448. {  friend class sos_Method_table;
  449.    virtual sos_Offset _offset_sos_Object () { return 0; }
  450.    virtual sos_Offset _offset_sos_Aggregate () { return 8; }
  451.    virtual sos_Offset _offset_sos_Object_sos_Object_Association () { return 8; }
  452.    virtual sos_Offset _offset_sos_Object_sos_Object_Mapping () { return 10; }
  453.    virtual sos_Offset _offset_sos_Method_table () { return 71; }
  454. public:
  455.    static _sos_Method_table* _make(sos_Typed_id&);
  456.    virtual sos_Offset _size();
  457.    void _create(sos_Typed_id&);
  458.    void _copy(sos_Typed_id&,sos_Method_table);
  459.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  460.    virtual void destroy(sos_Typed_id&);
  461.    virtual void assign(sos_Typed_id&,sos_Object);
  462.    static void local_assign(sos_Method_table,sos_Object);
  463.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  464.    static sos_Bool local_equal(sos_Method_table,sos_Object,sos_Eq_kind);
  465.    virtual sos_Int hash_value(sos_Typed_id&);
  466.    static sos_Int local_hash_value(sos_Method_table);
  467.    virtual sos_Method lookup(sos_Typed_id&,sos_Method _p1);
  468.    virtual sos_Method lookup_or_add(sos_Typed_id&,sos_Method _p1);
  469.    virtual sos_Method replace_or_add(sos_Typed_id&,sos_Method _p1);
  470.    virtual sos_Comp_method lookup_comp(sos_Typed_id&,sos_String _p1,sos_Bool is_set);
  471. protected:
  472. };
  473. extern _sos_Method_table *__sos_Method_table_obj;
  474. class _sos_Comp_method:virtual public _sos_Method
  475. {  friend class sos_Comp_method;
  476.    virtual sos_Offset _offset_sos_Object () { return 0; }
  477.    virtual sos_Offset _offset_sos_Named () { return 8; }
  478.    virtual sos_Offset _offset_sos_Method () { return 8; }
  479.    virtual sos_Offset _offset_sos_Comp_method () { return 85; }
  480. public:
  481.    static _sos_Comp_method* _make(sos_Typed_id&);
  482.    virtual sos_Offset _size();
  483.    void _create(sos_Typed_id&);
  484.    void _copy(sos_Typed_id&,sos_Comp_method);
  485.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  486.    virtual void destroy(sos_Typed_id&);
  487.    virtual void assign(sos_Typed_id&,sos_Object);
  488.    static void local_assign(sos_Comp_method,sos_Object);
  489.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  490.    static sos_Bool local_equal(sos_Comp_method,sos_Object,sos_Eq_kind);
  491.    virtual sos_Int hash_value(sos_Typed_id&);
  492.    static sos_Int local_hash_value(sos_Comp_method);
  493.    virtual sos_Expr get_init_expr(sos_Typed_id&);
  494.    virtual void set_init_expr(sos_Typed_id&,sos_Expr);
  495.    virtual sos_Bool get_is_set(sos_Typed_id&);
  496.    virtual void set_is_set(sos_Typed_id&,sos_Bool);
  497.    virtual sos_Bool get_is_value(sos_Typed_id&);
  498.    virtual void set_is_value(sos_Typed_id&,sos_Bool);
  499.    virtual sos_Bool get_is_local(sos_Typed_id&);
  500.    virtual void set_is_local(sos_Typed_id&,sos_Bool);
  501.    virtual sos_Int get_offset(sos_Typed_id&);
  502.    virtual void set_offset(sos_Typed_id&,sos_Int);
  503. protected:
  504. };
  505. extern _sos_Comp_method *__sos_Comp_method_obj;
  506. class _sos_Union_type:virtual public _sos_Schema_type
  507. {  friend class sos_Union_type;
  508.    virtual sos_Offset _offset_sos_Object () { return 0; }
  509.    virtual sos_Offset _offset_sos_Named () { return 8; }
  510.    virtual sos_Offset _offset_sos_Type () { return 8; }
  511.    virtual sos_Offset _offset_sos_Type_name () { return 28; }
  512.    virtual sos_Offset _offset_sos_Schema_type () { return 28; }
  513.    virtual sos_Offset _offset_sos_Union_type () { return 28; }
  514. public:
  515.    static _sos_Union_type* _make(sos_Typed_id&);
  516.    virtual sos_Offset _size();
  517.    void _create(sos_Typed_id&);
  518.    void _copy(sos_Typed_id&,sos_Union_type);
  519.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  520.    virtual void destroy(sos_Typed_id&);
  521.    virtual void assign(sos_Typed_id&,sos_Object);
  522.    static void local_assign(sos_Union_type,sos_Object);
  523.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  524.    virtual sos_Int hash_value(sos_Typed_id&);
  525.    virtual sos_Type_name_List get_uniteds(sos_Typed_id&);
  526.    virtual void set_uniteds(sos_Typed_id&,sos_Type_name_List);
  527. protected:
  528.    static sos_Bool local_equal(sos_Union_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  529.    static sos_Int local_hash_value(sos_Union_type _p1);
  530. };
  531. extern _sos_Union_type *__sos_Union_type_obj;
  532. class _sos_Typedef_type:virtual public _sos_Schema_type
  533. {  friend class sos_Typedef_type;
  534.    virtual sos_Offset _offset_sos_Object () { return 0; }
  535.    virtual sos_Offset _offset_sos_Named () { return 8; }
  536.    virtual sos_Offset _offset_sos_Type () { return 8; }
  537.    virtual sos_Offset _offset_sos_Type_name () { return 28; }
  538.    virtual sos_Offset _offset_sos_Schema_type () { return 28; }
  539.    virtual sos_Offset _offset_sos_Typedef_type () { return 28; }
  540. public:
  541.    static _sos_Typedef_type* _make(sos_Typed_id&);
  542.    virtual sos_Offset _size();
  543.    void _create(sos_Typed_id&);
  544.    void _copy(sos_Typed_id&,sos_Typedef_type);
  545.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  546.    virtual void destroy(sos_Typed_id&);
  547.    virtual void assign(sos_Typed_id&,sos_Object);
  548.    static void local_assign(sos_Typedef_type,sos_Object);
  549.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  550.    virtual sos_Int hash_value(sos_Typed_id&);
  551.    virtual sos_Schema_type make_base_type(sos_Typed_id&);
  552.    virtual sos_Type_name get_type_name(sos_Typed_id&);
  553.    virtual void set_type_name(sos_Typed_id&,sos_Type_name);
  554. protected:
  555.    static sos_Bool local_equal(sos_Typedef_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  556.    static sos_Int local_hash_value(sos_Typedef_type _p1);
  557. };
  558. extern _sos_Typedef_type *__sos_Typedef_type_obj;
  559. class _sos_Enum_type:virtual public _sos_Schema_type
  560. {  friend class sos_Enum_type;
  561.    virtual sos_Offset _offset_sos_Object () { return 0; }
  562.    virtual sos_Offset _offset_sos_Named () { return 8; }
  563.    virtual sos_Offset _offset_sos_Type () { return 8; }
  564.    virtual sos_Offset _offset_sos_Type_name () { return 28; }
  565.    virtual sos_Offset _offset_sos_Schema_type () { return 28; }
  566.    virtual sos_Offset _offset_sos_Enum_type () { return 28; }
  567. public:
  568.    static _sos_Enum_type* _make(sos_Typed_id&);
  569.    virtual sos_Offset _size();
  570.    void _create(sos_Typed_id&);
  571.    void _copy(sos_Typed_id&,sos_Enum_type);
  572.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  573.    virtual void destroy(sos_Typed_id&);
  574.    virtual void assign(sos_Typed_id&,sos_Object);
  575.    static void local_assign(sos_Enum_type,sos_Object);
  576.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  577.    virtual sos_Int hash_value(sos_Typed_id&);
  578.    virtual sos_Scalar_object make_object(sos_Typed_id&,sos_String _p1);
  579.    virtual sos_String make_string(sos_Typed_id&,sos_Scalar_object _p1);
  580.    virtual sos_String_List get_literals(sos_Typed_id&);
  581.    virtual void set_literals(sos_Typed_id&,sos_String_List);
  582. protected:
  583.    static sos_Bool local_equal(sos_Enum_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  584.    static sos_Int local_hash_value(sos_Enum_type _p1);
  585. };
  586. extern _sos_Enum_type *__sos_Enum_type_obj;
  587. class _sos_Extern_type:virtual public _sos_Schema_type
  588. {  friend class sos_Extern_type;
  589.    virtual sos_Offset _offset_sos_Object () { return 0; }
  590.    virtual sos_Offset _offset_sos_Named () { return 8; }
  591.    virtual sos_Offset _offset_sos_Type () { return 8; }
  592.    virtual sos_Offset _offset_sos_Type_name () { return 28; }
  593.    virtual sos_Offset _offset_sos_Schema_type () { return 28; }
  594.    virtual sos_Offset _offset_sos_Extern_type () { return 28; }
  595. public:
  596.    static _sos_Extern_type* _make(sos_Typed_id&);
  597.    virtual sos_Offset _size();
  598.    void _create(sos_Typed_id&);
  599.    void _copy(sos_Typed_id&,sos_Extern_type);
  600.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  601.    virtual void destroy(sos_Typed_id&);
  602.    virtual void assign(sos_Typed_id&,sos_Object);
  603.    static void local_assign(sos_Extern_type,sos_Object);
  604.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  605.    static sos_Bool local_equal(sos_Extern_type,sos_Object,sos_Eq_kind);
  606.    virtual sos_Int hash_value(sos_Typed_id&);
  607.    static sos_Int local_hash_value(sos_Extern_type);
  608. protected:
  609. };
  610. extern _sos_Extern_type *__sos_Extern_type_obj;
  611. class _sos_Forward_class_type:virtual public _sos_Schema_type
  612. {  friend class sos_Forward_class_type;
  613.    virtual sos_Offset _offset_sos_Object () { return 0; }
  614.    virtual sos_Offset _offset_sos_Named () { return 8; }
  615.    virtual sos_Offset _offset_sos_Type () { return 8; }
  616.    virtual sos_Offset _offset_sos_Type_name () { return 28; }
  617.    virtual sos_Offset _offset_sos_Schema_type () { return 28; }
  618.    virtual sos_Offset _offset_sos_Forward_class_type () { return 28; }
  619. public:
  620.    static _sos_Forward_class_type* _make(sos_Typed_id&);
  621.    virtual sos_Offset _size();
  622.    void _create(sos_Typed_id&);
  623.    void _copy(sos_Typed_id&,sos_Forward_class_type);
  624.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  625.    virtual void destroy(sos_Typed_id&);
  626.    virtual void assign(sos_Typed_id&,sos_Object);
  627.    static void local_assign(sos_Forward_class_type,sos_Object);
  628.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  629.    virtual sos_Int hash_value(sos_Typed_id&);
  630.    virtual sos_Schema_type make_base_type(sos_Typed_id&);
  631.    virtual sos_Class_type get_complete(sos_Typed_id&);
  632.    virtual void set_complete(sos_Typed_id&,sos_Class_type);
  633. protected:
  634.    static sos_Bool local_equal(sos_Forward_class_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  635.    static sos_Int local_hash_value(sos_Forward_class_type _p1);
  636. };
  637. extern _sos_Forward_class_type *__sos_Forward_class_type_obj;
  638. class _sos_Super_class:virtual public _sos_Object
  639. {  friend class sos_Super_class;
  640.    virtual sos_Offset _offset_sos_Object () { return 0; }
  641.    virtual sos_Offset _offset_sos_Super_class () { return 8; }
  642. public:
  643.    static _sos_Super_class* _make(sos_Typed_id&);
  644.    virtual sos_Offset _size();
  645.    void _create(sos_Typed_id&);
  646.    void _copy(sos_Typed_id&,sos_Super_class);
  647.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  648.    virtual void destroy(sos_Typed_id&);
  649.    virtual void assign(sos_Typed_id&,sos_Object);
  650.    static void local_assign(sos_Super_class,sos_Object);
  651.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  652.    static sos_Bool local_equal(sos_Super_class,sos_Object,sos_Eq_kind);
  653.    virtual sos_Int hash_value(sos_Typed_id&);
  654.    static sos_Int local_hash_value(sos_Super_class);
  655.    virtual sos_Class_type get_super_class(sos_Typed_id&);
  656.    virtual void set_super_class(sos_Typed_id&,sos_Class_type);
  657.    virtual sos_Expr_List get_create_params(sos_Typed_id&);
  658.    virtual void set_create_params(sos_Typed_id&,sos_Expr_List);
  659.    virtual sos_Int get_offset(sos_Typed_id&);
  660.    virtual void set_offset(sos_Typed_id&,sos_Int);
  661. protected:
  662. };
  663. extern _sos_Super_class *__sos_Super_class_obj;
  664. class _sos_Class_type:virtual public _sos_Schema_type
  665. {  friend class sos_Class_type;
  666.    virtual sos_Offset _offset_sos_Object () { return 0; }
  667.    virtual sos_Offset _offset_sos_Named () { return 8; }
  668.    virtual sos_Offset _offset_sos_Type () { return 8; }
  669.    virtual sos_Offset _offset_sos_Type_name () { return 28; }
  670.    virtual sos_Offset _offset_sos_Schema_type () { return 28; }
  671.    virtual sos_Offset _offset_sos_Class_type () { return 28; }
  672. public:
  673.    static _sos_Class_type* _make(sos_Typed_id&);
  674.    virtual sos_Offset _size();
  675.    void _create(sos_Typed_id&);
  676.    void _copy(sos_Typed_id&,sos_Class_type);
  677.    virtual sos_Object _clone(sos_Typed_id&,sos_Container);
  678.    virtual void destroy(sos_Typed_id&);
  679.    virtual void assign(sos_Typed_id&,sos_Object);
  680.    static void local_assign(sos_Class_type,sos_Object);
  681.    virtual sos_Bool equal(sos_Typed_id&,sos_Object,sos_Eq_kind=EQ_STRONG);
  682.    virtual sos_Int hash_value(sos_Typed_id&);
  683.    virtual sos_Class_type root_class(sos_Typed_id&);
  684.    virtual sos_Bool is_derived_from(sos_Typed_id&,sos_Type _p1);
  685.    virtual sos_Bool is_derived_from_some(sos_Typed_id&,sos_Type _p1);
  686.    virtual sos_Type root(sos_Typed_id&);
  687.    virtual sos_Schema_type make_root_type(sos_Typed_id&);
  688.    virtual sos_String make_type_name(sos_Typed_id&);
  689.    virtual sos_Gen_param_List get_gen_params(sos_Typed_id&);
  690.    virtual void set_gen_params(sos_Typed_id&,sos_Gen_param_List);
  691.    virtual sos_Param_List get_create_params(sos_Typed_id&);
  692.    virtual void set_create_params(sos_Typed_id&,sos_Param_List);
  693.    virtual sos_Bool get_has_init_comps(sos_Typed_id&);
  694.    virtual void set_has_init_comps(sos_Typed_id&,sos_Bool);
  695.    virtual sos_Bool get_is_abstract(sos_Typed_id&);
  696.    virtual void set_is_abstract(sos_Typed_id&,sos_Bool);
  697.    virtual sos_Type_name_List get_friends(sos_Typed_id&);
  698.    virtual void set_friends(sos_Typed_id&,sos_Type_name_List);
  699.    virtual sos_Type_name_List get_super_classes(sos_Typed_id&);
  700.    virtual void set_super_classes(sos_Typed_id&,sos_Type_name_List);
  701.    virtual sos_Super_class_List get_super_closure(sos_Typed_id&);
  702.    virtual void set_super_closure(sos_Typed_id&,sos_Super_class_List);
  703.    virtual sos_Method_List get_methods(sos_Typed_id&);
  704.    virtual void set_methods(sos_Typed_id&,sos_Method_List);
  705.    virtual sos_Method_List get_comp_methods(sos_Typed_id&);
  706.    virtual void set_comp_methods(sos_Typed_id&,sos_Method_List);
  707.    virtual sos_Method_List get_static_methods(sos_Typed_id&);
  708.    virtual void set_static_methods(sos_Typed_id&,sos_Method_List);
  709.    virtual sos_Method_table get_inherited_methods(sos_Typed_id&);
  710.    virtual void set_inherited_methods(sos_Typed_id&,sos_Method_table);
  711.    virtual sos_Generic_instantiation get_generated_from(sos_Typed_id&);
  712.    virtual void set_generated_from(sos_Typed_id&,sos_Generic_instantiation);
  713.    virtual sos_String get_root_name(sos_Typed_id&);
  714.    virtual void set_root_name(sos_Typed_id&,sos_String);
  715.    virtual sos_Int get_local_size(sos_Typed_id&);
  716.    virtual void set_local_size(sos_Typed_id&,sos_Int);
  717. protected:
  718.    static sos_Bool local_equal(sos_Class_type _p1,sos_Object _p2,sos_Eq_kind _p3);
  719.    static sos_Int local_hash_value(sos_Class_type _p1);
  720. };
  721. extern _sos_Class_type *__sos_Class_type_obj;
  722. extern void _mta_init_sos();
  723. #endif
  724.